#ifndef JSONOPER_H
#define JSONOPER_H

#include <iostream>
#include <vector>
using namespace std;

#include <QObject>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QFile>
#include <QIODevice>
#include <QDebug>

#include "opencv2/opencv.hpp"
using namespace cv;

class JsonOper : public QObject
{
    Q_OBJECT
public:
    explicit JsonOper(QObject *parent = nullptr);


    /***********************************************************************
     *  @function  img2Json
     *  @brief     img数据写入json文件
     *  @param
     *  @return
    ***********************************************************************/
    void img2Json(const std::string& fileName);

    /***********************************************************************
     *  @function jsonRead
     *  @brief
     *  @param
     *  @return
    ***********************************************************************/
    std::string jsonRead(const std::string& jsonFileName);

    QByteArray jsonRead(const std::string& jsonFileName, bool _Placeholder);

    /***********************************************************************
     *  @function  multiDArray2Json
     *  @brief     多维数组写入json文件
     *  @param
     *  @return
    ***********************************************************************/
    void multiDArray2Json();

    /***********************************************************************
     *  @function parseMultiArray2D
     *  @brief    解析二维数组
     *  @param
     *  @return
    ***********************************************************************/
    void parseMultiArray2D(const QByteArray& byteArray);

private:
    /***********************************************************************
     *  @function  jsonWrite
     *  @brief
     *  @param
     *  @return
    ***********************************************************************/
    void jsonWrite_(const QJsonObject& json, const std::string& fileName);


signals:

public slots:
};

#endif // JSONOPER_H
